File tree Expand file tree Collapse file tree 5 files changed +52
-1
lines changed Expand file tree Collapse file tree 5 files changed +52
-1
lines changed Original file line number Diff line number Diff line change @@ -33,6 +33,7 @@ obj-y += check_key_uart.o
3333obj-y += debug_mode.o
3434obj-y += key_burn.o
3535obj-$(CONFIG_SUNXI_SERIAL) += sunxi_serial.o
36+ obj-$(CONFIG_PINE64_MODEL) += pine64_model.o
3637
3738obj-$(CONFIG_VIDEO_SUNXI_V1) += de_v1.o
3839obj-$(CONFIG_VIDEO_SUNXI_V2) += de_v2.o
Original file line number Diff line number Diff line change 1111#include "debug_mode.h"
1212#include "sunxi_string.h"
1313#include "sunxi_serial.h"
14+ #include "pine64_model.h"
1415#include <fdt_support.h>
1516#include <arisc.h>
1617
@@ -520,6 +521,9 @@ int board_late_init(void)
520521 ret = update_fdt_para_for_kernel (working_fdt );
521522#ifdef CONFIG_SUNXI_SERIAL
522523 sunxi_set_serial_num ();
524+ #endif
525+ #ifdef CONFIG_PINE64_MODEL
526+ pine64_set_model ();
523527#endif
524528 return 0 ;
525529 }
Original file line number Diff line number Diff line change 1+
2+ #include <common.h>
3+
4+ DECLARE_GLOBAL_DATA_PTR ;
5+
6+ int get_model_from_dram_size (char * model )
7+ {
8+ phys_size_t l = 512 * 1024 * 1024 ;
9+ puts ("get Pine64 model from DRAM size\n" );
10+ if (gd -> ram_size > l ) {
11+ puts ("DRAM >512M\n" );
12+ sprintf (model , "pine64-plus" );
13+ } else {
14+ puts ("DRAM <= 512M\n" );
15+ sprintf (model , "pine64" );
16+ }
17+
18+ return 0 ;
19+ }
20+
21+ int pine64_set_model (void )
22+ {
23+ char model [128 ] = {0 };
24+ get_model_from_dram_size (model );
25+
26+ printf ("Pine64 model: %s\n" , model );
27+ if (setenv ("pine64_model" , model ))
28+ {
29+ printf ("error:set variable [pine64_model] fail\n" );
30+ }
31+ return 0 ;
32+ }
Original file line number Diff line number Diff line change 1+
2+ #ifndef PINE64_MODEL_H_H_
3+ #define PINE64_MODEL_H_H_
4+
5+ int pine64_set_model (void );
6+
7+ #endif
8+
Original file line number Diff line number Diff line change 219219#define CONFIG_CMD_BOOTA
220220#define CONFIG_SUNXI_DMA
221221#define CONFIG_CMD_MEMORY
222+ #define CONFIG_CMD_MEMINFO
222223
223224
224225#define SUNXI_DMA_LINK_NULL (0x1ffff800)
343344 "kernel_addr=41080000\0" \
344345 "initrd_addr=45300000\0" \
345346 "kernel_filename=pine64/Image\0" \
346- "fdt_filename=pine64/sun50i-a64-pine64-plus.dtb\0" \
347+ "fdt_filename_prefix=pine64/sun50i-a64-\0" \
348+ "fdt_filename_suffix=.dtb\0" \
347349 "initrd_filename=initrd.img\0" \
348350 "bootenv_filename=uEnv.txt\0" \
349351 "load_bootenv=" \
350352 "fatload mmc 0:1 ${load_addr} ${bootenv_filename}\0" \
351353 "import_bootenv=" \
352354 "env import -t ${load_addr} ${filesize}\0" \
353355 "load_dtb=" \
356+ "if test ${fdt_filename} = \"\"; then " \
357+ "setenv fdt_filename ${fdt_filename_prefix}${pine64_model}${fdt_filename_suffix}; " \
358+ "fi; " \
354359 "fatload mmc 0:1 ${fdt_addr} ${fdt_filename}; " \
355360 "fdt addr ${fdt_addr}; fdt resize\0" \
356361 "load_kernel=" \
417422#define CONFIG_MMC_LOGICAL_OFFSET 0
418423#define CONFIG_CMD_ECHO
419424
425+ #define CONFIG_PINE64_MODEL
420426#endif /* __CONFIG_H */
You can’t perform that action at this time.
0 commit comments