Browse Source

add basic infrastructure for microchip PIC32MZ-DA

Basically our u-boot does not work and the Linux kernel
stopps on Boot. So we are in the beginning to make this
device work in OpenADK.
Waldemar Brodkorb 1 month ago
parent
commit
b4d8e7c27d

+ 1 - 0
target/config/Config.in.runtime

@@ -389,6 +389,7 @@ config ADK_RUNTIME_CONSOLE_SERIAL_DEVICE
 	default "ttyS4" if ADK_TARGET_SYSTEM_IMGTEC_CI20
 	default "ttyS4" if ADK_TARGET_SYSTEM_IMGTEC_CI20
 	default "ttySTM0" if ADK_TARGET_SYSTEM_ST_STM32F746G
 	default "ttySTM0" if ADK_TARGET_SYSTEM_ST_STM32F746G
 	default "ttyGF0" if ADK_TARGET_SYSTEM_QEMU_M68K_VIRT
 	default "ttyGF0" if ADK_TARGET_SYSTEM_QEMU_M68K_VIRT
+	default "ttyPIC1" if ADK_TARGET_SYSTEM_MICROCHIP_PIC32
 	default "ttyS0"
 	default "ttyS0"
 
 
 config ADK_RUNTIME_CONSOLE_SERIAL_SPEED
 config ADK_RUNTIME_CONSOLE_SERIAL_SPEED

+ 1 - 0
target/linux/Config.in.kernelcfg

@@ -74,6 +74,7 @@ config ADK_TARGET_LINUX_KERNEL_DEFCONFIG
 	default "lemote2f_defconfig" if ADK_TARGET_SYSTEM_LEMOTE_FULOONG
 	default "lemote2f_defconfig" if ADK_TARGET_SYSTEM_LEMOTE_FULOONG
 	default "etraxfs_defconfig" if ADK_TARGET_SYSTEM_AXIS_89_DEVICE_SERVER
 	default "etraxfs_defconfig" if ADK_TARGET_SYSTEM_AXIS_89_DEVICE_SERVER
 	default "hp6xx_defconfig" if ADK_TARGET_SYSTEM_HP_JORNADA
 	default "hp6xx_defconfig" if ADK_TARGET_SYSTEM_HP_JORNADA
+	default "pic32mzda_defconfig" if ADK_TARGET_SYSTEM_MICROCHIP_PIC32
 	default ""
 	default ""
 
 
 config ADK_TARGET_LINUX_KERNEL_CUSTOMCONFIG_PATH
 config ADK_TARGET_LINUX_KERNEL_CUSTOMCONFIG_PATH

+ 1 - 1
target/linux/config/Config.in.kernel

@@ -246,7 +246,7 @@ config ADK_LINUX_KERNEL_SMP
 config ADK_LINUX_KERNEL_HIGHMEM
 config ADK_LINUX_KERNEL_HIGHMEM
 	bool "Enable high memory"
 	bool "Enable high memory"
 	# produces broken kernel on bcm28xx
 	# produces broken kernel on bcm28xx
-	depends on !ADK_TARGET_BOARD_BCM28XX
+	depends on !ADK_TARGET_BOARD_BCM28XX && !ADK_TARGET_SYSTEM_MICROCHIP_PIC32
 	default y if ADK_TARGET_MODEL_CUBOX_I4PRO
 	default y if ADK_TARGET_MODEL_CUBOX_I4PRO
 	default y if ADK_TARGET_MODEL_CUBOX_I2ULTRA
 	default y if ADK_TARGET_MODEL_CUBOX_I2ULTRA
 	default y if ADK_TARGET_MODEL_CUBOX_I2EX
 	default y if ADK_TARGET_MODEL_CUBOX_I2EX

+ 9 - 3
target/mips/Makefile

@@ -12,6 +12,9 @@ endif
 ifeq ($(ADK_TARGET_KERNEL_UIMAGEGZ),y)
 ifeq ($(ADK_TARGET_KERNEL_UIMAGEGZ),y)
 KERNEL:=$(LINUX_DIR)/arch/mips/boot/uImage.gz
 KERNEL:=$(LINUX_DIR)/arch/mips/boot/uImage.gz
 endif
 endif
+ifeq ($(ADK_TARGET_KERNEL_UIMAGEBIN),y)
+KERNEL:=$(LINUX_DIR)/arch/mips/boot/uImage.bin
+endif
 
 
 OSTRIP:=-R .reginfo -R .notes -R .note -R .comment -R .mdebug -R .note.gnu.build-id
 OSTRIP:=-R .reginfo -R .notes -R .note -R .comment -R .mdebug -R .note.gnu.build-id
 
 
@@ -93,12 +96,15 @@ targethelp:
 	@echo 'The UBI image is: ${FW_DIR}/${ROOTFSUBIFS}'
 	@echo 'The UBI image is: ${FW_DIR}/${ROOTFSUBIFS}'
 endif
 endif
 
 
-# dummy
 kernel-strip:
 kernel-strip:
-	@cp $(KERNEL) $(BUILD_DIR)/$(TARGET_KERNEL)
+ifeq ($(ADK_TARGET_KERNEL_UIMAGE)$(ADK_TARGET_KERNEL_UIMAGEBIN),)
+	$(TARGET_CROSS)objcopy $(OSTRIP) -S $(KERNEL) $(BUILD_DIR)/$(TARGET_KERNEL)
+else
+	$(CP) $(KERNEL) $(BUILD_DIR)/$(TARGET_KERNEL)
+endif
 
 
 kernel-install: kernel-strip
 kernel-install: kernel-strip
-	@cp $(BUILD_DIR)/$(TARGET_KERNEL) $(FW_DIR)/${TARGET_KERNEL}
+	$(CP) $(BUILD_DIR)/$(TARGET_KERNEL) $(FW_DIR)/${TARGET_KERNEL}
 
 
 # filesystem specific targets
 # filesystem specific targets
 ifeq ($(ADK_TARGET_FS),archive)
 ifeq ($(ADK_TARGET_FS),archive)

+ 12 - 0
target/mips/kernel/microchip-pic32

@@ -0,0 +1,12 @@
+CONFIG_MIPS=y
+CONFIG_MACH_PIC32=y
+CONFIG_PIC32MZDA=y
+CONFIG_DTB_PIC32_MZDA_SK=y
+CONFIG_BUILTIN_DTB_NAME="pic32mzda_sk"
+CONFIG_BUILTIN_DTB=y
+CONFIG_MIPS_NO_APPENDED_DTB=y
+CONFIG_CPU_MIPSR2=y
+CONFIG_CMDLINE_BOOL=y
+CONFIG_SERIAL_PIC32=y
+CONFIG_SERIAL_PIC32_CONSOLE=y
+CONFIG_SERIAL_EARLYCON=y

+ 14 - 0
target/mips/systems/microchip-pic32

@@ -0,0 +1,14 @@
+config ADK_TARGET_SYSTEM_MICROCHIP_PIC32
+	bool "Microchip PIC32"
+	select ADK_TARGET_LITTLE_ENDIAN
+	select ADK_TARGET_CPU_MIPS_MIPS32R2
+	select ADK_TARGET_WITH_SERIAL
+	select ADK_TARGET_WITH_NET
+	select ADK_TARGET_WITH_NETDEVICE
+	select ADK_TARGET_WITH_BLOCK
+	select ADK_TARGET_KERNEL_UIMAGEBIN
+	select ADK_PACKAGE_U_BOOT
+	select ADK_HOST_BUILD_U_BOOT
+	help
+	  Support for Microchip PIC32 developer board PIC32MZ.
+