Code Monkey home page Code Monkey logo

stm32f769i-disco_buildroot's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

stm32f769i-disco_buildroot's Issues

Framebuffer / lcd support

Hello,

Why no LCD/framebuffer support in your build ? It would be a kind yet simple addition to your patches.

Since you have made your way through emcraft kernel then there is not that much to do to make it work, and alongside with XiP it doesn't take up that much on the available ram. Remember this stm32f769 implementation dedicated to even running the proxmark3 clientnwith crapto1 computation and directly on the device: https://youtu.be/4jI3O-egG0w
As I remember that's only a rewrite of the 429 FB driver + the addition of the near as-is DSI driver from the stm32cubeMX HAL. Then you need to work a.bit on patching fbcon and a few other bits to ensure the ARGB8888 is well working and voila.

Or is it a choice to avoid the framebuffer/dsi/LCD implementation? That's annheavy loss for the device.

The only thing I can think of which would benefit from a more or less user land implementation would be to make it more flexible to implementn Chromeart Accelerator functions.

Did I miss something here ?

No longer builds due to changes in glibc, syncconfig

This no longer builds due to changes in glibc described here:

https://askubuntu.com/questions/1099392/compilation-of-m4-1-4-10-to-1-4-18-fails-due-to-please-port-gnulib-freadahead-c

as well as the removal of the syncconfig make target for the linux kernel. (but you can just smash enter to accept all defaults).

The new LTS of buildroot is 2019.2.9, if simply changing to that succeeds (short of smashing enter) I'll add a PR to this issue.

Error during 'make build'

Hello,
I am new to embedded linux and started with gets hands on using STM32F769 Disco.
After cloning and following the instructions from this github repo, I seem to reach here during 'make build' :
freadahead.c: In function 'freadahead':
freadahead.c:92:3: error: #error "Please port gnulib freadahead.c to your platform! Look at the definition of fflush, fread, ungetc on your system, then report this to bug-gnulib."
92 | #error "Please port gnulib freadahead.c to your platform! Look at the definition of fflush, fread, ungetc on your system, then report this to bug-gnulib."
| ^~~~~
CC obstack.o
make[6]: *** [Makefile:1915: freadahead.o] Error 1
make[6]: *** Waiting for unfinished jobs....
fseeko.c: In function 'rpl_fseeko':
fseeko.c:110:4: error: #error "Please port gnulib fseeko.c to your platform! Look at the code in fseeko.c, then report this to bug-gnulib."
110 | #error "Please port gnulib fseeko.c to your platform! Look at the code in fseeko.c, then report this to bug-gnulib."
| ^~~~~
make[6]: *** [Makefile:1915: fseeko.o] Error 1
make[5]: *** [Makefile:1674: all] Error 2
make[4]: *** [Makefile:1572: all-recursive] Error 1
make[3]: *** [Makefile:1528: all] Error 2
make[2]: *** [package/pkg-generic.mk:250: /home/knki/Documents/stm32linux/STM32F769I-disco_Buildroot/buildroot/output/build/host-m4-1.4.18/.stamp_built] Error 2
make[1]: *** [Makefile:79: _all] Error 2
make[1]: Leaving directory '/home/knki/Documents/stm32linux/STM32F769I-disco_Buildroot/buildroot'
make: *** [Makefile:16: build] Error 2

Could you please provide any pointers to get around this ?

Kind regards
Kiran Kanchi

hardware support float point (FPU) in this project (STM32F769I-disco_Buildroot) in linux user application

Good day to all.
This project does not support the FPU hardware module on the ARM.
But I'm trying to use FPU in a user level application written in c under uclinux, for this,
as in HAL stm32f769 : SCB->CPACR |= ((3UL << 102) | (3UL << 112) ); (set CP10 Full Access and set CP11 Full Access),
I wrote a function that I activate in the self-written Linux kernel driver.
This function looks like this:
static void vfp_enable(void *unused)
{
uint32_t ret = 0;

asm volatile("ldr   r1, =0xE000ED88 \n\t"    // CPACR is located at address 0xE000ED88
               "ldr   r0, [r1] \n\t"                             // Read CPACR
               "orr   r0, r0, #0xf << 20 \n\t"          // Set bits 20-23 to enable CP10 and CP11 coprocessors
               "str   r0, [r1] \n\t"                            // Write back the modified value to the CPACR
               "isb \n\t"
               : "=r" (ret) : : "cc");
if (ret == 0xF00000)
printk("[%s] FPU activate OK !\n", __func__);
else
printk("[%s] FPU activate Error !\n", __func__);

}
This function is needed to activate the hardware module of the FPU, since after a processor reset it is in an inactive state.
After kernel loaded i see next message from this function : [vfp_enable] FPU activate OK !
I compile a user-level test application (fpu) with the following options: CFLAGS += -Os -Wall -mtune=cortex-m7 -mthumb -mfpu=fpv5-d16 -mfloat-abi=hard.
uсlibс is built with support for hardware FPU module and toolchain also supports hardware FPU (arm-buildroot-uclinux-uclibcgnueabihf packet).
But after starting application I get exception with kernel panic :
Unhandled exception: IPSR = 00000004 LR = fffffffd
CPU: 0 PID: 55 Comm: fpu Not tainted 4.15.10 #3421
Hardware name: Generic DT based system
PC is at 0x0
LR is at 0xc03e044b
pc : [<00000000>] lr : [] psr: 00000000
sp : c03f3d48 ip : 2f5a5f49 fp : c03edfa4
r10: c03edfa8 r9 : 00000001 r8 : 00000000
r7 : 00000001 r6 : 00000000 r5 : c03f3efc r4 : 00000000
r3 : 0000004e r2 : c03f3f08 r1 : 00000000 r0 : 00000000
xPSR: 00000000
CPU: 0 PID: 55 Comm: fpu Not tainted 4.15.10 #3421
Hardware name: Generic DT based system
[] (unwind_backtrace) from [] (show_stack+0xb/0xc)
[] (show_stack) from [] (__invalid_entry+0x4b/0x4c)

Maybe someone already dealt with this problem and can share their experience?
Thank you in advance.
With my best regards.

Please describe steps to build boot disk

Hello,

what filesystem type is needed as first partition o the card? I tried ext4 (and others), but all I get is
mmc0 is current device
** Unrecognized filesystem type **

This is with unchanged config files.

Thanks

Pause during Kernel booting

Hello,

I want to see running uClinux on STM32F769-DISCO.
So, I try to do with your buildroot.

U-Boot is good running.
I did download dtb file and zImage using netboot.


U-Boot > run netboot
Speed: 100, full duplex
Using ethernet@40028000 device
TFTP from server 192.168.10.10; our IP address is 192.168.10.50
Filename 'stm32f769/stm32f769-disco.dtb'.
Load address: 0xc0700000
Loading: #
1.9 MiB/s
done
Bytes transferred = 12191 (2f9f hex)
Speed: 100, full duplex
Using ethernet@40028000 device
TFTP from server 192.168.10.10; our IP address is 192.168.10.50
Filename 'stm32f769/zImage'.
Load address: 0xc0008000
Loading: #################################################################
###############################################
2.6 MiB/s
done
Bytes transferred = 1634472 (18f0a8 hex)

Flattened Device Tree blob at c0700000

Booting using the fdt blob at 0xc0700000
Loading Device Tree to c0e98000, end c0e9df9e ... OK


And start the kernel boot.


[ 0.180000] workingset: timestamp_bits=30 max_order=12 bucket_order=0
[ 0.190000] io scheduler noop registered (default)
[ 0.190000] io scheduler mq-deadline registered
[ 0.190000] io scheduler kyber registered
[ 0.210000] STM32 USART driver initialized
[ 0.210000] 40011000.serial: ttyS0 at MMIO 0x40011000 (irq = 32, base_baud = 6250000) is a stm32-usart
[ 0.640000] console [ttyS0] enabled
[ 0.640000] stm32-usart 40011000.serial: rx dma alloc failed
[ 0.650000] stm32-usart 40011000.serial: interrupt mode used for rx (no dma)
[ 0.660000] stm32-usart 40011000.serial: tx dma alloc failed
[ 0.660000] stm32-usart 40011000.serial: interrupt mode used for tx (no dma)
[ 0.660000] i2c /dev entries driver
[ 0.670000] NET: Registered protocol family 17
[ 0.680000] hctosys: unable to open rtc device (rtc0)
[ 0.690000] Freeing unused kernel memory: 284K
[ 0.700000] This architecture does not have kernel memory protection.
[ 0.710000]
[ 0.710000] Unhandled exception: IPSR = 00000006 LR = fffffff1
[ 0.710000] CPU: 0 PID: 1 Comm: init Not tainted 4.15.10 #2
[ 0.710000] Hardware name: Generic DT based system
[ 0.710000] PC is at ret_fast_syscall+0x2/0x58
[ 0.710000] LR is at tty_ioctl+0x2ad/0x57c
[ 0.710000] pc : [] lr : [] psr: 4000000b
[ 0.710000] sp : c0825fa8 ip : 0000001c fp : c0a0e8c2
[ 0.710000] r10: 00000000 r9 : c0824000 r8 : c0009c60
[ 0.710000] r7 : 00000036 r6 : c0a44ec0 r5 : 00000000 r4 : c0a44f1c
[ 0.710000] r3 : 00000000 r2 : 00000000 r1 : 00000000 r0 : 00000000
[ 0.710000] xPSR: 4000000b
[ 0.710000] CPU: 0 PID: 1 Comm: init Not tainted 4.15.10 #2
[ 0.710000] Hardware name: Generic DT based system
[ 0.710000] [] (unwind_backtrace) from [] (show_stack+0xb/0xc)
[ 0.710000] [] (show_stack) from [] (__invalid_entry+0x4b/0x4c)


I would like to know why the kernel stopped.

Thanks for shared Buildroot.

Crash on kernel booting

Hello,
I'am trying to use this interesting project to boot linux on my stm32f769-disco board. However, i can't boot the kernel, it seems memory error occured. I haven't modify the configuration files.

Below you can see start-up log console message :

U-Boot 2018.03 (Jul 11 2018 - 10:45:21 +0200)

Model: STMicroelectronics STM32F769-DISCO board
DRAM: 16 MiB
Flash: 1 MiB
MMC: MMC: 0
In: serial@40011000
Out: serial@40011000
Err: serial@40011000
usr button is at LOW LEVEL
Net:
Warning: ethernet@40028000 (eth0) using random MAC address - ca:9a:32:94:d6:82
eth0: ethernet@40028000
Hit SPACE in 0 seconds to stop autoboot.
switch to partitions #0, OK
mmc0 is current device
12191 bytes read in 25 ms (475.6 KiB/s)
1634656 bytes read in 165 ms (9.4 MiB/s)

Flattened Device Tree blob at c0700000

Booting using the fdt blob at 0xc0700000
Loading Device Tree to c0e98000, end c0e9df9e ... OK

Starting kernel ...

[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 4.15.9 (yann@debian-stm32F769) (gcc version 7.3.0 (Buildroot 2018.02-00002-g0e90cde)) #5 PREEMPT Wed Jul 11 19:53:40 CEST 2018
[ 0.000000] CPU: ARMv7-M [411fc270] revision 0 (ARMv7M), cr=00000000
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction cache
[ 0.000000] OF: fdt: Machine model: STMicroelectronics STM32F769-DISCO board
[ 0.000000] debug: ignoring loglevel setting.
[ 0.000000] On node 0 totalpages: 4096
[ 0.000000] Normal zone: 32 pages used for memmap
[ 0.000000] Normal zone: 0 pages reserved
[ 0.000000] Normal zone: 4096 pages, LIFO batch:0
[ 0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[ 0.000000] pcpu-alloc: [0] 0
[ 0.000000] Built 1 zonelists, mobility grouping off. Total pages: 4064
[ 0.000000] Kernel command line: console=ttyS0,115200 earlyprintk consoleblank=0 ignore_loglevel
[ 0.000000] Dentry cache hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.000000] Inode-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.000000] Memory: 13504K/16384K available (1511K kernel code, 148K rwdata, 484K rodata, 284K init, 125K bss, 2880K reserved, 0K cma-reserved)
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] vector : 0x00000000 - 0x00001000 ( 4 kB)
[ 0.000000] fixmap : 0xffc00000 - 0xfff00000 (3072 kB)
[ 0.000000] vmalloc : 0x00000000 - 0xffffffff (4095 MB)
[ 0.000000] lowmem : 0xc0000000 - 0xc1000000 ( 16 MB)
[ 0.000000] .text : 0x(ptrval) - 0x(ptrval) (1512 kB)
[ 0.000000] .init : 0x(ptrval) - 0x(ptrval) ( 284 kB)
[ 0.000000] .data : 0x(ptrval) - 0x(ptrval) ( 149 kB)
[ 0.000000] .bss : 0x(ptrval) - 0x(ptrval) ( 126 kB)
[ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] Preemptible hierarchical RCU implementation.
[ 0.000000] Tasks RCU enabled.
[ 0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[ 0.000000] interrupt-controller@40013c00: bank0, External IRQs available:0x1ffffff
[ 0.000000] clocksource: arm_system_timer: mask: 0xffffff max_cycles: 0xffffff, max_idle_ns: 298634427 ns
[ 0.000000] ARM System timer initialized as clocksource
[ 0.000000] /soc/timer@40000c00: STM32 clockevent driver initialized (32 bits)
[ 0.000000] sched_clock: 32 bits at 100 Hz, resolution 10000000ns, wraps every 21474836475000000ns
[ 0.050000] Calibrating delay loop... 398.13 BogoMIPS (lpj=1990656)
[ 0.050000] pid_max: default: 4096 minimum: 301
[ 0.050000] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.050000] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.050000] Hierarchical SRCU implementation.
[ 0.050000] devtmpfs: initialized
[ 0.070000] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.070000] pinctrl core: initialized pinctrl subsystem
[ 0.070000] random: get_random_u32 called from bucket_table_alloc+0xc3/0xec with crng_init=0
[ 0.070000] NET: Registered protocol family 16
[ 0.080000] stm32f746-pinctrl soc:pin-controller: GPIOA bank added
[ 0.080000] stm32f746-pinctrl soc:pin-controller: GPIOB bank added
[ 0.080000] stm32f746-pinctrl soc:pin-controller: GPIOC bank added
[ 0.080000] stm32f746-pinctrl soc:pin-controller: GPIOD bank added
[ 0.080000] stm32f746-pinctrl soc:pin-controller: GPIOE bank added
[ 0.080000] stm32f746-pinctrl soc:pin-controller: GPIOF bank added
[ 0.080000] stm32f746-pinctrl soc:pin-controller: GPIOG bank added
[ 0.090000] stm32f746-pinctrl soc:pin-controller: GPIOH bank added
[ 0.090000] stm32f746-pinctrl soc:pin-controller: GPIOI bank added
[ 0.090000] stm32f746-pinctrl soc:pin-controller: GPIOJ bank added
[ 0.090000] stm32f746-pinctrl soc:pin-controller: GPIOK bank added
[ 0.090000] stm32f746-pinctrl soc:pin-controller: Pinctrl STM32 initialized
[ 0.100000] random: fast init done
[ 0.100000] clocksource: Switched to clocksource arm_system_timer
[ 0.110000] NET: Registered protocol family 2
[ 0.110000] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.110000] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.110000] TCP: Hash tables configured (established 1024 bind 1024)
[ 0.110000] UDP hash table entries: 256 (order: 0, 4096 bytes)
[ 0.110000] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[ 0.180000] workingset: timestamp_bits=30 max_order=12 bucket_order=0
[ 0.190000] io scheduler noop registered (default)
[ 0.190000] io scheduler mq-deadline registered
[ 0.190000] io scheduler kyber registered
[ 0.200000] STM32 USART driver initialized
[ 0.210000] 40011000.serial: ttyS0 at MMIO 0x40011000 (irq = 32, base_baud = 6250000) is a stm32-usart
[ 0.640000] console [ttyS0] enabled
[ 0.640000] stm32-usart 40011000.serial: rx dma alloc failed
[ 0.650000] stm32-usart 40011000.serial: interrupt mode used for rx (no dma)
[ 0.660000] stm32-usart 40011000.serial: tx dma alloc failed
[ 0.660000] stm32-usart 40011000.serial: interrupt mode used for tx (no dma)
[ 0.670000] i2c /dev entries driver
[ 0.670000] NET: Registered protocol family 17
[ 0.680000] hctosys: unable to open rtc device (rtc0)
[ 0.690000] Freeing unused kernel memory: 284K
[ 0.690000] This architecture does not have kernel memory protection.
[ 0.710000]
[ 0.710000] Unhandled exception: IPSR = 00000006 LR = fffffff1
[ 0.710000] CPU: 0 PID: 1 Comm: init Not tainted 4.15.9 #5
[ 0.710000] Hardware name: Generic DT based system
[ 0.710000] PC is at ret_fast_syscall+0x2/0x58
[ 0.710000] LR is at tty_ioctl+0x2ad/0x57c
[ 0.710000] pc : [] lr : [] psr: 4000000b
[ 0.710000] sp : c0825fa8 ip : 0000001c fp : c0a0e462
[ 0.710000] r10: 00000000 r9 : c0824000 r8 : c0009c60
[ 0.710000] r7 : 00000036 r6 : c0a44ec0 r5 : 00000000 r4 : c0a44f1c
[ 0.710000] r3 : 00000000 r2 : 00000000 r1 : 00000000 r0 : 00000000
[ 0.710000] xPSR: 4000000b
[ 0.710000] CPU: 0 PID: 1 Comm: init Not tainted 4.15.9 #5
[ 0.710000] Hardware name: Generic DT based system
[ 0.710000] [] (unwind_backtrace) from [] (show_stack+0xb/0xc)
[ 0.710000] [] (show_stack) from [] (__invalid_entry+0x4b/0x4c)

Have you encountered this problem? Do you have any solution ?
Thank you.

Best regards

mmc in kernel not support ?

Good day.
How can I make support for mmc-card (on sdio2) ?
I edited the file stm32f769-disco.dtb, added the following lines to it:
aliases {
mmc0 = &sdio2;
serial0 = &usart1;
};

&sdio2 {
status="okay";
cd-gpios = <&gpiod 7 0>;
cd-inverted;
pinctrl-names = "default", "opendrain";
pinctrl-1 = <&sdio_pins_b>;
pinctrl-1 = <&sdio_pins_od_b>;
bus-width = <4>;
max-frequency = <25000000>;
};

and in the file stm32f746.dtb:
sdio_pins_b: sdio_pins_b@0 {
pins {
pinmux = <STM32_PINMUX('G', 9, AF10)>, //<STM32F769_PG9_FUNC_SDMMC2_D0>,
<STM32_PINMUX('G', 10, AF10)>, //<STM32F769_PG10_FUNC_SDMMC2_D1>,
<STM32_PINMUX('B', 3, AF10)>,//<STM32F769_PB3_FUNC_SDMMC2_D2>,
<STM32_PINMUX('B', 4, AF10)>,//<STM32F769_PB4_FUNC_SDMMC2_D3>,
<STM32_PINMUX('D', 6, AF10)>,//<STM32F769_PD6_FUNC_SDMMC2_CLK>,
<STM32_PINMUX('D', 7, AF10)>;//<STM32F769_PD7_FUNC_SDMMC2_CMD>;
drive-push-pull;
slew-rate = <2>;
};
};

sdio_pins_od_b: sdio_pins_od_b@0 {
pins1 {
pinmux = <STM32_PINMUX('G', 9, AF10)>, //<STM32F769_PG9_FUNC_SDMMC2_D0>,
<STM32_PINMUX('G', 10, AF10)>, //<STM32F769_PG10_FUNC_SDMMC2_D1>,
<STM32_PINMUX('B', 3, AF10)>, //<STM32F769_PB3_FUNC_SDMMC2_D2>,
<STM32_PINMUX('B', 4, AF10)>, //<STM32F769_PB4_FUNC_SDMMC2_D3>,
<STM32_PINMUX('D', 6, AF10)>; //<STM32F769_PD6_FUNC_SDMMC2_CLK>;
drive-push-pull;
slew-rate = <2>;
};
pins2 {
pinmux = <STM32_PINMUX('D', 7, AF10)>; //<STM32F769_PD7_FUNC_SDMMC2_CMD>;
drive-open-drain;
slew-rate = <2>;
};
};

sdio2: sdio2@40011c00 {
compatible = "st,stm32f7-sdio";
reg=<0x40011c00 0x400>;
clocks = <&rcc 0 167>;
interrupts = <103>;
status="enabled";
pinctrl-0 = <&sdio_pins_b>;
pinctrl-1 = <&sdio_pins_od_b>;
pinctrl-names = "default", "opendrain";
max-frequency = <24000000>;
};

but the kernel does not "see" this device.
I did something wrong in the description of this device.
What exactly, can you suggest?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.