Hi Arnd, Jesse, All,
sorry for previous HTML e-mail(I was on mobile phone),
On 16/12/21 09:26, Arnd Bergmann wrote:
On Wed, Dec 15, 2021 at 11:05 PM Jesse Taube <mr.bossman075@xxxxxxxxx> wrote:
This patchset contains:
- i.MXRT10xx family infrastructure
- i.MXRT1050 pinctrl driver adaption
- i.MXRT1050 clock driver adaption
- i.MXRT1050 sd-card driver adaption
- i.MXRT1050 uart driver adaption
- i.MXRT1050-evk basic support
The i.MXRTxxxx family that could have support by Linux actually spreads
from i.MXRT1020 to i.MXRT1170 with the first one supporting 1 USB OTG &
100M ethernet with a cortex-M7@500Mhz up to the latter with i.MXRT1170
with cortex-M7@1Ghz and cortex-M4@400Mhz, 2MB of internal SRAM, 2D GPU,
2x 1Gb and 1x 100Mb ENET. The i.MXRT family is NXP's answer to
STM32F7XX, as it uses only simple SDRAM, it gives the chance of a 4 or
less layer PCBs. Seeing that these chips are comparable to the
STM32F7XXs which have linux ported to them it seems reasonable to add
support for them.
Giving Linux support to this family should ease the development process,
instead of using a RTOS they could use Embedded Linux allowing for more
portability, ease of design and will broaden the scope of people using
embedded linux.
The EVK has very little SDRAM, generally 32MB starting from
i.MXRT1020(the lowest P/N), although the i.MXRT1160/70 provide instead
64MB of SDRAM for more functionality.
At the moment we do not support XIP for either u-boot or Linux but it
should be done in the future. XIP will also save SDRAM.
Another interesting fact is the amount of internal SRAM, as the P/N
increases the SRAM will reach up to 2MB(some could be for cache and
some would be for video).
Also, some parts have embed flash of 4MB that can be used for
u-boot/Linux, if both correctly sized it will leave the SDRAM free.
External flash can be Quad SPI and HyperFlash, so throughput would be
decent.
The i.MXRT11xx series supports MIPI interface too.
The family in general provide CAN bus, audio I/O, 1 or more
USB(otg/host), 1 or more 100Mb/1Gb ethernet, camera interface, sd-card.
All this can be used for simple GUIs, web-servers, point-of-sale
stations, etc.
This looks all good to me now, but the drivers need to be reviewed by the
respective subsystem maintainers before we can merge it into the soc
tree. As with other new SoCs, I'm happy to merge the support as a combined
pull request that includes the drivers provided that the driver subsystem
maintainers have reviewed them.
Ideally the i.MX maintainers would pick up your series into a separate
branch and send that to soc@xxxxxxxxxx the same way as the other topic
branches that are usually split out between DT, drivers, soc code etc.
With the Christmas break coming up, the timing may not be sufficient
before I'm off next week, so it may end up too late for 5.17 but should
be fine for 5.18.
As a more general comment, it's always nice to see newly added SoC
platforms, especially when they are this well implemented and done
by hobbyists. However, I do think you are being overly optimistic
as to how useful this is going to be to other people: interest in NOMMU
ARM platforms has dropped a lot over the past 5 years, and as far as I
can tell, it is only being kept alive for existing stm32 customers
as the economics do not favor Linux on Cortex-M for new products
compare to Linux on Cortex-A or some RTOS on Cortex-M.
The existing users will inevitably stop updating their kernels at some
point, and then it's most likely just you and Vladimir Murzin that care.
About this will you accept support for the other SoCs in the family?
We would like to add in the near future:
- i.MXRT1020(uboot support is already upstreamed)
- i.MXRT1024(almost equal to 1020)
- i.MXRT1060(almost equal to 1050)
- i.MXRT1064(almost equal to 1060)
And
- i.MXRT1160/70 new family with faster core clock(1Ghz) and a cortex M4
We need to add missing lcd(uboot upstreamed), usb(uboot upstreamed),
ethernet(wip) supports for i.MXRT10xx family.
This is to organize with Jesse also about buying evaluation boards and
timing.
We’ve meant this porting also as an exercise to deal with Linux deeper
for us and for the other newbies.
We’ve been also asked about a possible support for s32s(quad cortex-R52)
on initial emails but it has no mmu too.
While I’m seeing that some cortex-R is landing inside Linux.
Would it be interesting anyway?
Best regards
—-
Giulio Benetti
Benetti Engineering sas