Skip to content

Commit 7f9b12e

Browse files
committed
refactor(board): reorganize includes and fix code formatting in board_common.c
- Reorder includes alphabetically and group related headers - Fix inconsistent indentation
1 parent e6f0de9 commit 7f9b12e

3 files changed

Lines changed: 88 additions & 101 deletions

File tree

‎board/kendryte/common/board_common.c‎

Lines changed: 67 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,11 @@
2222
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
2323
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2424
*/
25+
#include "board_common.h"
26+
#include <kendryte/k230_platform.h>
2527

2628
#include <asm/asm.h>
29+
#include <asm/global_data.h>
2730
#include <asm/io.h>
2831
#include <asm/spl.h>
2932
#include <asm/types.h>
@@ -37,109 +40,95 @@
3740
#include <lmb.h>
3841
#include <malloc.h>
3942
#include <memalign.h>
40-
#include <stdio.h>
4143
#include <u-boot/crc.h>
42-
#include <asm/global_data.h>
4344

44-
#include <kendryte/k230_platform.h>
45+
#include <stdio.h>
4546

46-
#include "board_common.h"
4747
DECLARE_GLOBAL_DATA_PTR;
48-
int mmc_get_env_dev(void) {
49-
return (BOOT_MEDIUM_SDIO1 == g_boot_medium) ? 1 : 0;
50-
}
5148

52-
enum env_location arch_env_get_location(enum env_operation op, int prio) {
53-
if (0 != prio) {
54-
return ENVL_UNKNOWN;
55-
}
49+
uint64_t g_dram_base = CONFIG_MEM_BASE_ADDR;
50+
uint64_t g_dram_size = 128 * 1024 * 1024;
51+
52+
int mmc_get_env_dev(void) { return (BOOT_MEDIUM_SDIO1 == g_boot_medium) ? 1 : 0; }
53+
54+
enum env_location arch_env_get_location(enum env_operation op, int prio)
55+
{
56+
if (0 != prio) {
57+
return ENVL_UNKNOWN;
58+
}
5659

5760
#ifdef CONFIG_ENV_IS_NOWHERE
58-
return ENVL_NOWHERE;
61+
return ENVL_NOWHERE;
5962
#endif
6063

61-
if (g_boot_medium == BOOT_MEDIUM_NORFLASH) {
62-
return ENVL_SPI_FLASH;
63-
}
64+
if (g_boot_medium == BOOT_MEDIUM_NORFLASH) {
65+
return ENVL_SPI_FLASH;
66+
}
6467

65-
if (g_boot_medium == BOOT_MEDIUM_NANDFLASH) {
66-
return ENVL_SPINAND;
67-
}
68+
if (g_boot_medium == BOOT_MEDIUM_NANDFLASH) {
69+
return ENVL_SPINAND;
70+
}
6871

69-
return ENVL_MMC;
72+
return ENVL_MMC;
7073
}
7174

7275
#ifndef CONFIG_SPL_BUILD
73-
int __weak kd_board_init(void)
74-
{
75-
return 0;
76-
}
76+
int __weak kd_board_init(void) { return 0; }
7777

78-
int board_init(void) {
79-
if ((BOOT_MEDIUM_SDIO0 == g_boot_medium) ||
80-
(BOOT_MEDIUM_SDIO1 == g_boot_medium)) {
78+
int board_init(void)
79+
{
80+
if ((BOOT_MEDIUM_SDIO0 == g_boot_medium) || (BOOT_MEDIUM_SDIO1 == g_boot_medium)) {
8181
#define SD_HOST_REG_VOL_STABLE (1 << 4)
82-
#define SD_CARD_WRITE_PROT (1 << 6)
82+
#define SD_CARD_WRITE_PROT (1 << 6)
8383

84-
u32 sd0_ctrl = readl((void *)SD0_CTRL);
85-
sd0_ctrl |= SD_HOST_REG_VOL_STABLE | SD_CARD_WRITE_PROT;
86-
writel(sd0_ctrl, (void *)SD0_CTRL);
87-
}
84+
u32 sd0_ctrl = readl((void*)SD0_CTRL);
85+
sd0_ctrl |= SD_HOST_REG_VOL_STABLE | SD_CARD_WRITE_PROT;
86+
writel(sd0_ctrl, (void*)SD0_CTRL);
87+
}
8888

89-
return kd_board_init();
89+
return kd_board_init();
9090
}
9191
#endif
9292

93-
u32 detect_ddr_size(void)
93+
uint64_t detect_ddr_size(void)
9494
{
95-
u64 ddr_size = 0;
96-
u64 readv0,readv1 = 0;
97-
ulong ddr_detect_pattern[]={0x1234567887654321, 0x1122334455667788};
98-
99-
100-
gd->ram_base = CONFIG_MEM_BASE_ADDR;
101-
gd->ram_size = 0x8000000;
102-
103-
writeq(ddr_detect_pattern[0], CONFIG_MEM_BASE_ADDR);
104-
writeq(ddr_detect_pattern[0], CONFIG_MEM_BASE_ADDR+8);
105-
flush_dcache_range(CONFIG_MEM_BASE_ADDR, CONFIG_MEM_BASE_ADDR+CONFIG_SYS_CACHELINE_SIZE);
106-
107-
for(ddr_size = 128*1024*1024; ddr_size <= (u64)(1*1024*1024*1024); ddr_size=ddr_size<<1 ){
108-
invalidate_dcache_range(ddr_size, ddr_size + CONFIG_SYS_CACHELINE_SIZE);
109-
readv0 = readq(ddr_size);
110-
111-
if(readv0 == ddr_detect_pattern[0]){//再次确认下
112-
writeq(ddr_detect_pattern[1], ddr_size+8);
113-
flush_dcache_range(ddr_size, ddr_size+CONFIG_SYS_CACHELINE_SIZE);
114-
invalidate_dcache_range(CONFIG_MEM_BASE_ADDR, CONFIG_MEM_BASE_ADDR + CONFIG_SYS_CACHELINE_SIZE);
115-
116-
readv1 = readq(CONFIG_MEM_BASE_ADDR+8);
117-
if(readv1 == ddr_detect_pattern[1]){
118-
//printf("get ddr size=%lx\n", ddr_size);
119-
break;
120-
}
121-
}
122-
//printf("ddr size=%lx %lx,%lx \n", ddr_size,readv0,readv1);
123-
}
124-
gd->ram_size = ddr_size;
125-
//printf("ddr detect error %x\n\n", ddr_size);
126-
return ddr_size;
95+
uint64_t ddr_size = 0;
96+
uint64_t readv0, readv1 = 0;
97+
uint64_t ddr_detect_pattern[] = { 0x1234567887654321, 0x1122334455667788 };
98+
99+
gd->ram_base = CONFIG_MEM_BASE_ADDR;
100+
gd->ram_size = 0x8000000;
101+
102+
g_dram_base = CONFIG_MEM_BASE_ADDR;
103+
g_dram_size = 128 * 1024 * 1024;
104+
105+
writeq(ddr_detect_pattern[0], CONFIG_MEM_BASE_ADDR);
106+
writeq(ddr_detect_pattern[0], CONFIG_MEM_BASE_ADDR + 8);
107+
flush_dcache_range(CONFIG_MEM_BASE_ADDR, CONFIG_MEM_BASE_ADDR + CONFIG_SYS_CACHELINE_SIZE);
108+
109+
for (ddr_size = 128 * 1024 * 1024; ddr_size <= (u64)(1 * 1024 * 1024 * 1024); ddr_size = ddr_size << 1) {
110+
invalidate_dcache_range(ddr_size, ddr_size + CONFIG_SYS_CACHELINE_SIZE);
111+
readv0 = readq(ddr_size);
112+
if (readv0 == ddr_detect_pattern[0]) {
113+
writeq(ddr_detect_pattern[1], ddr_size + 8);
114+
flush_dcache_range(ddr_size, ddr_size + CONFIG_SYS_CACHELINE_SIZE);
115+
invalidate_dcache_range(CONFIG_MEM_BASE_ADDR, CONFIG_MEM_BASE_ADDR + CONFIG_SYS_CACHELINE_SIZE);
116+
readv1 = readq(CONFIG_MEM_BASE_ADDR + 8);
117+
if (readv1 == ddr_detect_pattern[1]) {
118+
break;
119+
}
120+
}
121+
}
122+
123+
gd->ram_size = ddr_size;
124+
g_dram_size = ddr_size;
125+
126+
return ddr_size;
127127
}
128128

129-
#ifdef CONFIG_AUTO_DETECT_DDR_SIZE
130-
int dram_init(void)
131-
{
132-
detect_ddr_size();
133-
return 0;
134-
}
135-
#else
136129
int dram_init(void)
137130
{
138-
return fdtdec_setup_mem_size_base();
139-
}
131+
detect_ddr_size();
140132

141-
int dram_init_banksize(void)
142-
{
143-
return fdtdec_setup_memory_banksize();
133+
return 0;
144134
}
145-
#endif

‎board/kendryte/common/board_common.h‎

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@
3535

3636
#include "k230_gpio.h"
3737

38+
#include <stdint.h>
39+
3840
// Fallback definition or other code
3941
#ifndef MYHEADER_EXISTS
4042
// Provide alternative definitions or inform about missing header
@@ -49,10 +51,6 @@
4951
#define CONFIG_RTSMART_OPENSIB_MEMORY_SIZE 0x20000
5052
#endif
5153

52-
#if !defined(CONFIG_MEM_TOTAL_SIZE)
53-
#define CONFIG_MEM_TOTAL_SIZE (128 * 1024 * 1024)
54-
#endif
55-
5654
typedef enum {
5755
BOOT_MEDIUM_NORFLASH = 0,
5856
BOOT_MEDIUM_NANDFLASH = 1,
@@ -119,6 +117,8 @@ typedef enum _en___boot_type {
119117
#define INVALID_LOAD_ADDR 0xFFFFFFFF
120118

121119
extern int g_boot_medium;
120+
extern uint64_t g_dram_base;
121+
extern uint64_t g_dram_size;
122122

123123
unsigned long k230_get_encrypted_image_load_addr(void);
124124
unsigned long k230_get_encrypted_image_decrypt_addr(void);
@@ -136,6 +136,6 @@ int spl_load_image_type(void);
136136

137137
int k230_gpio(char opt, int pin, char* value);
138138

139-
u32 detect_ddr_size(void);
139+
uint64_t detect_ddr_size(void);
140140

141141
#endif

‎board/kendryte/common/k230_boot.c‎

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -44,23 +44,12 @@
4444
#include <stdint.h>
4545
#include <stdio.h>
4646

47+
#include "board_common.h"
48+
4749
#include "k230_atag.h"
4850

4951
#include "kendryte/pufs/pufs_hmac/pufs_hmac.h"
5052

51-
#ifdef CONFIG_AUTO_DETECT_DDR_SIZE
52-
#include <asm/global_data.h>
53-
DECLARE_GLOBAL_DATA_PTR;
54-
55-
#ifndef CONFIG_MEM_TOTAL_SIZE
56-
#define CONFIG_MEM_TOTAL_SIZE (gd->ram_size)
57-
#endif
58-
#else
59-
#define CONFIG_MEM_TOTAL_SIZE (128 * 1024 * 1024)
60-
#endif
61-
62-
#include "board_common.h"
63-
6453
/* TOC (Table of Contents) 定义 */
6554
#define K230_TOC_OFFSET 0xe0000
6655
#define K230_TOC_SECTOR (K230_TOC_OFFSET / 512)
@@ -88,17 +77,17 @@ struct k230_toc {
8877

8978
static struct k230_toc toc;
9079
static struct blk_desc *pblk_desc;
91-
static uint64_t rtapp_load_addr, rtapp_size;
80+
static uint64_t rtapp_load_addr, rtapp_size, rttapp_loaded = 0;
9281

9382
unsigned long k230_get_encrypted_image_load_addr(void)
9483
{
95-
unsigned long addr = CONFIG_MEM_BASE_ADDR + CONFIG_MEM_TOTAL_SIZE - ((CONFIG_MEM_TOTAL_SIZE / 3) * 2);
84+
unsigned long addr = g_dram_base + g_dram_size - ((g_dram_size / 3) * 2);
9685
return addr & ~(4096-1);
9786
}
9887

9988
unsigned long k230_get_rttapp_load_addr(void)
10089
{
101-
unsigned long addr = CONFIG_MEM_BASE_ADDR + CONFIG_MEM_TOTAL_SIZE - (CONFIG_MEM_TOTAL_SIZE / 3);
90+
unsigned long addr = g_dram_base + g_dram_size - (g_dram_size / 3);
10291
return addr & ~(4096-1);
10392
}
10493

@@ -562,6 +551,13 @@ static uint _k230_load_img(uint64_t offset)
562551
rtapp_size = dst_len;
563552
rtapp_load_addr = k230_get_rttapp_load_addr();
564553
image_set_load(pUh, rtapp_load_addr);
554+
555+
if((rtapp_load_addr + rtapp_size) > g_dram_size) {
556+
printf("rtapp too large\n");
557+
return INVALID_LOAD_ADDR;
558+
}
559+
560+
rttapp_loaded = 1;
565561
}
566562

567563
ret = k230_boot_decomp_to_load_addr(pUh, dst_len, src_data, &src_len);
@@ -630,8 +626,10 @@ static void k230_boot_core(int core, ulong run_addr)
630626
static void k230_setup_user_tag(void)
631627
{
632628
setup_start_tag();
633-
setup_k230_ddr_size_tag(gd->ram_size);
634-
setup_k230_rtapp_tag(rtapp_size, rtapp_load_addr);
629+
setup_k230_ddr_size_tag(g_dram_size);
630+
if(rttapp_loaded) {
631+
setup_k230_rtapp_tag(rtapp_size, rtapp_load_addr);
632+
}
635633
setup_end_tag();
636634
}
637635

0 commit comments

Comments
 (0)