Commit Graph

41 Commits

Author SHA1 Message Date
Xiang Xiao
6a3c2aded6 Fix wait loop and void cast (#24)
* Simplify EINTR/ECANCEL error handling

1. Add semaphore uninterruptible wait function
2 .Replace semaphore wait loop with a single uninterruptible wait
3. Replace all sem_xxx to nxsem_xxx

* Unify the void cast usage

1. Remove void cast for function because many place ignore the returned value witout cast
2. Replace void cast for variable with UNUSED macro
2020-01-02 10:54:43 -06:00
Petro Karashchenko
871197b4ec arch/arm/src/am335x/ and boards/arm/am335x/beaglebone-black/: Initial CAN support for the BBB. 2019-12-15 17:12:54 -06:00
Petro Karashchenko
ca4e6077e2 arch/arm/src/am335x/am335x_i2c.c: Improvements to AM335x I2C. 2019-12-15 17:02:59 -06:00
Petro Karashchenko
3737aa83fa arch/arm/src/am335x/am335x_i2c.c: AM225x I2C driver now works in both polling and interrupt modes. 2019-12-12 07:39:36 -06:00
Petro Karashchenko
813902cf87 arch/arm/src/am335x and boards/arm/am335x/beaglebone-black: Add I2C support for AM335X. 2019-12-10 20:22:25 -06:00
Gregory Nutt
425b1c737c Fix a problem I introduced in my recent review. 2019-12-10 18:04:56 -06:00
Petro Karashchenko
2f00eefa5d arch/arm/src/am335x: Adds AM335x Clock Configuration. 2019-12-10 17:55:08 -06:00
Gregory Nutt
615c0ea7ee Change naming configs/ to boards in comments, Documentation, etc. Still a few more to go. 2019-08-05 07:13:48 -06:00
Gregory Nutt
61d7fb5e41 video/videomode/videomode_lookup.c: At some additional lookups from FreeBSD. Not currently used in NuttX so ifdef'ed out for now. 2019-07-10 17:26:07 -06:00
Gregory Nutt
2811a297c7 Squashed commit of the following:
drivers/lcd/tda19988.c:  Now uses the new common videomode structure of include/nuttx/video/videomode.h as do other video components.

    video/, include/nuttx/video/videomode.h:  Separate EDID and from videomode managment.  They really are separate things.
2019-07-10 09:00:17 -06:00
Gregory Nutt
07b839965b arch/arm/src/am335x/Kconfig: Remove unused configuration settings left over from original copy-paste. 2019-07-09 19:11:50 -06:00
Petro Karashchenko
c9ff188f3e arch/arm/src/am335x: Changes related to Control Module 2019-07-09 15:38:38 -06:00
Petro Karashchenko
eed706d458 arch/arm/src/am335x/hardware/am335x_prcm.h: Rename am335x_cm.h to am335x_cm.h. 2019-07-09 14:50:07 -06:00
Gregory Nutt
8be74cdc48 configs/beaglebone-black/src/am335x_lcd.c: Can't use TDA19988 yet because there is no I2C driver. In the mean time, support LCD initialization using a fixed, configurable video mode. 2019-07-09 13:43:04 -06:00
Gregory Nutt
5c50854091 configs/beaglebone-black/src/am335x_lcd.c: Framework (only) for TDA19988 and LCD support for Beaglebone Black. 2019-07-09 10:21:38 -06:00
Gregory Nutt
e5eee68d0d arch/arm/src/am335x/am335x_lcdc.c: LCDC driver is now code complete and ready for testing. 2019-07-08 15:41:32 -06:00
Gregory Nutt
6991ac37fe arch/arm/src/am335x/am335x_lcdc.c: Add logic to get/set the module reference clock. Still one more clocking interface to to. 2019-07-08 14:52:32 -06:00
Gregory Nutt
e16c73957d arch/arm/src/am335x/am335x_sysclk.c: Add a function to return a frequency of the system clock. 2019-07-08 14:08:26 -06:00
Gregory Nutt
ed91fa34a0 Squashed commit of the following:
arch/arm/src/am335x:  Add logic to map the framebuffer to a non-cached, non-buffered memory region.
    arch/arm/src/am335x:  Remove struct am335x_fbinfo_s.  Replaced with configuration settings that provide the same information.
2019-07-08 13:23:56 -06:00
Gregory Nutt
b58f598d31 This commit brings in an initial LCD driver sof the AM335x architecture. This is a work in progress and so depends on EXPERIMENTAL. The code is nearly compete, missing some clock configureation settings. It does compile properly.
Squashed commit of the following:

    arch/arm/src/am335x/am335x_lcdc.c:  LCD driver now compiles.
    arch/arm/src/am335x/am335x_lcd.c:  This brings the LCD driver to code complete.  Have not yet attempted to compile.
    arch/arm/src/am335x/am335x_edid.c:  Framebuffer is pre-allocated.  In verification of video mode, include a test to assure that the video mode can be supported by the pre-allocated framebuffer memory.
    arch/arm/src/am335x/am335x_lcd.c:  At a little bit of LCD initialization logic.  There is a long way to go.
    arch/arm/src/am335x/am335x_edid.c:  Add am335x_lcd_videomode() which provides an alternative way of initializing the LCD controller.
    arch/arm/src/am335x/am335x_edid.c:  edit.h has move to include/nuttx/video.
    arch/arm/src/am335x/hardware/am335x_cm.h:  Fix a typo in a macro name.
    arch/arm/src/am335x/am335x_edid.c:  Integrate video/edid support.
    arch/arm/src/am335x/am335x_edid.c:  Fall back to VGA mode is not valid videomode is availabe in the EDID data.
    arch/arm/src/am335x/am335x_edid.c:  Fixes for a partially clean compile.
    arch/arm/src/am335x/am335x_edid.c:  Add basic logic to convert EDID montor descriptions into a form usable for LCD configuration.
    arch/arm/src/am335x: Add framework (only) for an LCD driver.  Initial commit is simply the LPC54 framebuffer driver with naming changes.
2019-07-08 12:06:23 -06:00
Gregory Nutt
2b25d56bfd arch/arm/src/am335x/hardware/am335x_lcd.h: Fix a few typos. Add things needed by the LCDC driver. 2019-07-08 11:17:03 -06:00
Gregory Nutt
a94970c0df arch/arm/src/am335x/hardware/am335x_cm.h: Fix a typo in a macro name. 2019-07-07 16:57:09 -06:00
Petro Karashchenko
bd248b52e4 arch/arm/src/am335x/hardware: Add register description files for MCSPI. 2019-07-06 12:24:11 -06:00
Petro Karashchenko
4af30628b6 arch/arm/src/am335x/hardware: Add register description files for I2C (plus various improvements to the WDOG register definitions) 2019-07-06 09:26:53 -06:00
Petro Karashchenko
90bed3383e arch/arm/src/am335x/hardware: Add register description files for DCAN and LCD. 2019-07-06 06:57:05 -06:00
Petro Karashchenko
55026f245b arch/arm/src/am335x: Add clock module registers definition. Switch to DMTIMER1 for systick. 2019-07-03 15:26:15 -06:00
Gregory Nutt
cdf3dba418 Fix another error found in build testing. 2019-05-24 16:17:01 -06:00
Gregory Nutt
c0b5fb3b40 Fix some errors found in build testing. 2019-05-24 16:05:36 -06:00
Gregory Nutt
7d57d59197 Rename arch/arm/src/am335x/chip to arch/arm/src/arm335x/hardware. 2019-05-24 15:58:25 -06:00
Gregory Nutt
b290160b3b Rename sched_process_timer to nxsched_process_timer. That is the appropriate name for an internal sched/ function (still many named incorrectly). 2019-03-20 19:27:40 -06:00
Xiang Xiao
cc1595f232 arm/armv7-a: Add mmu_l1_map_regions() to remove the code duplication. 2019-03-19 11:30:37 -06:00
Xiang Xiao
64252a298f arch/: Unify the cache interface for all architectures 2019-03-19 10:37:13 -06:00
Gregory Nutt
dc8c814ca3 Squashed commit of the following:
Fixed coding standard error in several files.  Use of while( is incorrect; a space is required between while and (.  Also ran tools/nxstyle and fix thoses complaints as well in most files.

    Changes to comply with coding standard.  Mostly focused on files with missing space after keyword in if(, switch(, and for(.  Offending files also got changes to comply with tools nxstyle.  If there were logs of nxstyle complaints, the file also got a taste of tools/indent.sh.  Still need to fix occurrences of while( with missing space.  There are a lot of them.
2019-02-27 08:41:08 -06:00
Gregory Nutt
e4336bd1be arch/arm/src/am335x/am335x_serial.c: Eliminate an error 'TIOCSBRK undeclared. 2019-01-27 12:49:42 -06:00
Xiang Xiao
818d8dda1e Remove empty seria.h and all references 2019-01-26 15:08:14 -06:00
Petro Karashchenko
0f324d3bce arch/arm/src/am335x/am335x_timerisr.c: Switch to DMTimer2 for system tick generation. U-Boot does not enable DMTimer1ms clocks hence it is not possible to use it until implementation in am335x_clockconfig.c is ready 2019-01-16 15:09:40 -06:00
Petro Karashchenko
937c30e57a arch/arm/src/am335x/chip/am335x_uart.h: Cosmetic changes for am335x_uart.h 2019-01-15 06:15:22 -06:00
Petro Karashchenko
dc92cd42e6 arch/arm/src/am335x: Add minimal wdog logic needed to disable the watchdog timer. Otherwise, the board is rebooted after certain time expires while NuttX is running. 2019-01-15 06:12:57 -06:00
Petro Karashchenko
95f6c13c61 With these changes, I am able to access NSH on Beaglebone Black.
I still observe data abort crash if I compile the code with optimization enabled.

The next steps are to investigate the optimization issue and add Watchdog module. Currently, NSH does not run for a long time ;)

  arch/arm/src/am335x/am335x_irq.c:  Correct interrupt processing routine
  configs/beaglebone-black/nsh/defconfig:  Enable debug compilation options. Otherwise data abort crash is observed
  arch/arm/src/am335x/am335x_lowputc.c and arch/arm/src/am335x/chip/am335x_uart.h:  UART-related cosmetic changes
  arch/arm/src/am335x/am335x_timerisr.c:  Make sure that Timer 1 interrupts are disabled before any access to peripheral registers
2019-01-09 16:21:20 -06:00
Petro Karashchenko
a0ba6a12a4 arch/arm/src/am335x/chip/am3358_memorymap.h: Code cleanup for beaglebone black port
arch/arm/src/am335x/am335x_irq.c: Uncomment code for interrupt enable/disable
2019-01-06 14:24:39 -06:00
Petro Karashchenko
1727e47d2e Initial changes for BeagleBone Black board support (TI AM335x family based on Cortex-A8)
Squashed commit of the following:

Author: Gregory Nutt <gnutt@nuttx.org>
    Many small changes related to coding style.

Author: Petro Karashchenko <petro.karashchenko@gmail.com>
    configs/beaglebone-black:  Adds initial support for the BeagleBone Black board.
    arch/arm/src/am335x:  Adds initial support for the TI AM355x family.
2019-01-06 09:05:38 -06:00